#ifndef _LIST_H_
#define _LIST_H_

#include "interface.h"

#define List_DEF

#define List_SHARED \
FN(unsigned long, size); \
FN(int, isEmpty); \
FN(int, add, void *ptr); \
FN(int, insertAt, unsigned long int pos, void *ptr); \
FN(int, set, unsigned long int pos, void *ptr); \
FN(void *, get, unsigned long int pos); \
FN(long int, indexOf, void *ptr); \
FN(long int, lastIndexOf, void *ptr); \
FN(int, contains, void *ptr); \
FN(int, del, unsigned long int pos); \
FN(int, delObj, void *ptr);

#define List_EXCLUSIVE

BUILD_OBJ(List)

#endif
